static vs dynamic languages